package cn.com.gof.structure.composite;

import java.util.ArrayList;
import java.util.List;

/**
 * <p>Title: AbstractFile</p>  
 * <p>Description: </p>  
 * @author WangJun
 * @date 2018年9月7日 上午10:04:53
 */
public interface AbstractFile {
	void killVirus();
}
class Floder implements AbstractFile{
	private List<AbstractFile> list = new ArrayList<>();
	@Override
	public void killVirus() {
		for (AbstractFile abstractFile : list) {
			abstractFile.killVirus();
		}
	}
	public void add(AbstractFile file) {
		list.add(file);
	}
	public void remove(AbstractFile file) {
		list.remove(file);
	}
}
class ImgFile implements AbstractFile {
	@Override
	public void killVirus() {
		System.out.println("------图片文件杀毒--------");
	}
}
class TextFile implements AbstractFile {
	@Override
	public void killVirus() {
		System.out.println("------文本文件杀毒--------");
	}
}
class VideoFile implements AbstractFile {
	@Override
	public void killVirus() {
		System.out.println("------视频文件杀毒--------");
	}
}